import axios from "axios";

const Instance = axios.create({
    //网络请求的公共配置
    timeout:5000
})

//请求拦截器
Instance.interceptors.request.use(
    config => {
        //console.log("请求拦截器执行了")
        const jwtToken = localStorage.getItem('wx_access-client'); //1.在本地存储中取出jwt令牌（由登录操作存储于本地）
        //console.log("请求头token中的令牌为：",jwtToken);

        if (jwtToken) {
            //const ModifiedJwtToken = jwtToken.replace(/"/g, ''); //要去掉双引号才行
            //console.log("修改后，请求头token中的令牌为：",ModifiedJwtToken);
            config.headers['token'] = `${jwtToken}`; //2.在请求头中传递参数
        }

        return config;
    }, err => {
        console.log("请求拦截器失败，失败原因为：",err);
    }
);


//响应拦截器
Instance.interceptors.response.use(
    config => {
        if (config?.data?.msg === 'NOT_LOGIN') {
            alert('身份验证失败，请重新登录')
            localStorage.removeItem('wx_access-client'); //删除令牌
            location.href = '/login';
        }
        return config;
    }, err => {
       // 超出 2xx 范围的状态码都会触发该函数。
       return Promise.reject(err);
    }
);



export default Instance; //导出一个axios实例，名为Instance
